In publish/subscribe systems information can be organised as an hierarchy of topics known as an hierarchical information aggregate. A user is able to subscribe to receive information published to one or more of the topics. When information is published to a topic in the information aggregate an information provider securely communicates the information as a message to a set of users in such a way that only a subset of the users who are subscribed to the topic are able to access the message. To ensure the message is communicated securely and can only be accessed by subscribed users it is necessary for the information provider to encrypt the message using a key based encryption method such as public/private key encryption.
One way to ensure published information is only accessible to subscribed users is to use an unicast publish/subscribe system. In an unicast system an information provider determines a set of users subscribed to a topic to which information is published. For each subscribed user a communications channel between the information provider and the subscribed user is used to communicate the published information as a message to the subscribed user. The communications channel is secured using a key for the subscribed user and a separate communications channel exists for each subscribed user. In this way published information is securely delivered to each subscribed user using separate communications channels so ensuring only subscribed users receive and can access the published information. Unicast publish/subscribe systems have the disadvantage that a communications channel must exist for each subscribed user and that published information must be communicated separately for each user.
An alternative to an unicast publish/subscribe system is a multicast publish/subscribe system which does not include a separate communications channel for each user. In a multicast system published information is communicated as a message to subscribed users over a communications channel which is common to multiple users, potentially including users which are not subscribed. To ensure the message is accessible only to subscribed users it is encrypted once for each subscribed user using a key specific to the user. Once encrypted for a subscribed user, the message is communicated over the common communications channel. Only the user for which the message was encrypted is able to access the published information using the user's specific key. Such a multicast publish/subscribe system has the disadvantage that a message containing published information must be encrypted and securely communicated once for each subscribed user. This is resource intensive especially where there are many subscribed users.
The paper “Secure Group Communications Using Key Graphs” (Wong et al, IEEE/ACM Transactions on Networking, Vol. 8, No. 1, February 2000 pp. 16-30) discloses a technique to partially alleviate these problems by using a hierarchy of keys, known as a logical key hierarchy. Wong et al. describe representing users in a multicast audience as leaf nodes in a logical tree. Each node contains a key and each user has knowledge of every key in the path from its leaf to the root of the tree. When information is published an information provider communicates the information as a message over a multicast communications channel. Prior to communication, the message is encrypted using a random key, Kr. An information provider then determines a set of keys which can be used to encrypt the random key Kr, where the set of keys corresponds to a set of subscribed users. Thus, the message is encrypted only once using the random key Kr, whilst the random key is itself encrypted multiple times using the set of keys corresponding to the subscribed users. Where all users in a branch of the logical tree are subscribers of the published information the key for the node representing the branch in the tree can be used to encrypt the random key Kr. In this way it is not necessary to encrypt the random key Kr using an individual key for each subscribed user. The logical key hierarchy approach described by Wong et al. therefore alleviates the problems with secure publish/subscribe distribution over a multicast communications channel by removing the need to encrypt a published information message more than once, and by reducing the set of keys required to accommodate a set of subscribed users.
While the logical key hierarchy approach is effective for simple published information structures, it has the drawback that it requires the generation of a random key Kr for each published information message. In a high volume system with frequent publication of information the repeated generation of random keys can be resource intensive. This is particularly pertinent to hierarchical information aggregates where users can have very fine grained subscriptions to particular and detailed topics in the information aggregate and the number of published information messages can be high. For example, a user may have specific subscription interests which may be very unlike other users, such as a stock quote system where each user subscribes to topics in an hierarchical information aggregate corresponding to stock quote information for particular stocks in a portfolio.
It would therefore be advantageous to securely communicate published information over a multicast communications channel without the need to generate a random key for each published information message for information published in an hierarchical information aggregate.